Enable IOMMU by default.
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 19 Jan 2010 15:44:54 +0000 (15:44 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 19 Jan 2010 15:44:54 +0000 (15:44 +0000)
Can be disabled with 'iommu=0' boot parameter.

Note that iommu_inclusive_mapping is now also enabled by default, to
deal with systems with broken BIOS tables specifying bad RMRRs. Old
behaviour can be specified via 'iommu_inclusive_mapping=0'.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
xen/drivers/passthrough/iommu.c
xen/drivers/passthrough/vtd/x86/vtd.c

index 7558c8729fb82fb2a138f74f740bc83c6fecb241..e4bd3cbbdf2b2d4e408fe55477608335340ee165 100644 (file)
@@ -37,13 +37,13 @@ static int iommu_populate_page_table(struct domain *d);
  *   no-intremap                Disable VT-d Interrupt Remapping
  */
 custom_param("iommu", parse_iommu_param);
-int iommu_enabled;
+int iommu_enabled = 1;
 int iommu_pv_enabled;
 int force_iommu;
 int iommu_passthrough;
-int iommu_snoop;
-int iommu_qinval;
-int iommu_intremap;
+int iommu_snoop = 1;
+int iommu_qinval = 1;
+int iommu_intremap = 1;
 int amd_iommu_debug;
 int amd_iommu_perdev_intremap;
 
@@ -51,13 +51,6 @@ static void __init parse_iommu_param(char *s)
 {
     char *ss;
 
-    iommu_enabled = 1;
-    iommu_snoop = 1;
-    iommu_qinval = 1;
-    iommu_intremap = 1;
-    amd_iommu_debug = 0;
-    amd_iommu_perdev_intremap = 0;
-
     do {
         ss = strchr(s, ',');
         if ( ss )
index 51dd5015595718d9338ecda3fc3ffcd729cad457..c5435b6f278d39511f2868ee310ba9ae2b90c677 100644 (file)
@@ -31,7 +31,7 @@
  * iommu_inclusive_mapping: when set, all memory below 4GB is included in dom0
  * 1:1 iommu mappings except xen and unusable regions.
  */
-static int iommu_inclusive_mapping;
+static int iommu_inclusive_mapping = 1;
 boolean_param("iommu_inclusive_mapping", iommu_inclusive_mapping);
 
 void *map_vtd_domain_page(u64 maddr)